package com.study.mybatisplus.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

/**
 * <p>
 * 支付信息表
 * </p>
 *
 * @author flwu
 * @since 2020-03-20
 */
@TableName("tbl_pay")
public class Pay implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联用户id
     */
    private Long userId;

    /**
     * 订单号
     */
    private String number;

    /**
     * 支付类型 1:微信 2:苹果 3:支付宝
     */
    private Boolean type;

    /**
     * 支付价格
     */
    private BigDecimal price;

    /**
     * 支付状态 1待支付 2已支付 3已作废
     */
    private Boolean status;

    /**
     * 支付信息
     */
    private String payInfo;

    /**
     * 回调信息
     */
    private String callbackInfo;

    /**
     * 第三方交易流水号
     */
    private String tradeOrderNo;

    /**
     * 支付信息同步状态 0:未同步 1:已同步
     */
    private Boolean isRsync;

    /**
     * 银行卡
     */
    private String bankType;

    /**
     * 第三方用户唯一标识
     */
    private String openId;

    /**
     * 回调时间
     */
    private LocalDateTime callbackDatetime;

    /**
     * 支付完成时间
     */
    private LocalDateTime payFinishedDatetime;

    /**
     * 创建时间
     */
    private LocalDateTime createDatetime;

    /**
     * 更新时间
     */
    private LocalDateTime updateDatetime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
    public Boolean getType() {
        return type;
    }

    public void setType(Boolean type) {
        this.type = type;
    }
    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }
    public String getPayInfo() {
        return payInfo;
    }

    public void setPayInfo(String payInfo) {
        this.payInfo = payInfo;
    }
    public String getCallbackInfo() {
        return callbackInfo;
    }

    public void setCallbackInfo(String callbackInfo) {
        this.callbackInfo = callbackInfo;
    }
    public String getTradeOrderNo() {
        return tradeOrderNo;
    }

    public void setTradeOrderNo(String tradeOrderNo) {
        this.tradeOrderNo = tradeOrderNo;
    }
    public Boolean getRsync() {
        return isRsync;
    }

    public void setRsync(Boolean isRsync) {
        this.isRsync = isRsync;
    }
    public String getBankType() {
        return bankType;
    }

    public void setBankType(String bankType) {
        this.bankType = bankType;
    }
    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public LocalDateTime getCallbackDatetime() {
        return callbackDatetime;
    }

    public void setCallbackDatetime(LocalDateTime callbackDatetime) {
        this.callbackDatetime = callbackDatetime;
    }
    public LocalDateTime getPayFinishedDatetime() {
        return payFinishedDatetime;
    }

    public void setPayFinishedDatetime(LocalDateTime payFinishedDatetime) {
        this.payFinishedDatetime = payFinishedDatetime;
    }
    public LocalDateTime getCreateDatetime() {
        return createDatetime;
    }

    public void setCreateDatetime(LocalDateTime createDatetime) {
        this.createDatetime = createDatetime;
    }
    public LocalDateTime getUpdateDatetime() {
        return updateDatetime;
    }

    public void setUpdateDatetime(LocalDateTime updateDatetime) {
        this.updateDatetime = updateDatetime;
    }

    @Override
    public String toString() {
        return "Pay{" +
            "id=" + id +
            ", userId=" + userId +
            ", number=" + number +
            ", type=" + type +
            ", price=" + price +
            ", status=" + status +
            ", payInfo=" + payInfo +
            ", callbackInfo=" + callbackInfo +
            ", tradeOrderNo=" + tradeOrderNo +
            ", isRsync=" + isRsync +
            ", bankType=" + bankType +
            ", openId=" + openId +
            ", callbackDatetime=" + callbackDatetime +
            ", payFinishedDatetime=" + payFinishedDatetime +
            ", createDatetime=" + createDatetime +
            ", updateDatetime=" + updateDatetime +
        "}";
    }
}
